import { ColDef, ICellRendererParams } from '@ag-grid-community/core'

// 查询事件列表发布路径列表请求参数
export interface IEventListPublishPathListReq {
  /**
   * 认证信息
   */
  auth?: string
  /**
   * 客户ID
   */
  customerIds?: string[]
  /**
   * 搜索字段 1.FBA ID 2.运单ID
   */
  searchField?: number
  /**
   * 搜索内容(在接口调用时转成数组)
   */
  searchWords?: string
  /**
   * ShipTrack要求 1.必须 2.可选
   */
  shipTrackRequire?: number
  /**
   * 客户可见 0-否 1-是
   */
  visibleFlag?: number

  page: number
  size: number
}

// 查询事件列表发布路径列表响应
export interface IEventListPublishPathListRes {
  /**
   * 当前页
   */
  current?: number
  /**
   * 总页数
   */
  pages?: number
  /**
   * 查询数据列表
   */
  records?: AllPublishPathODTO[]
  /**
   * 每页显示条数
   */
  size?: number
  /**
   * 总数
   */
  total?: number
}

// 查询数据列表
export interface AllPublishPathODTO {
  /**
   * 发布时间
   */
  createAt?: string
  /**
   * 发布人
   */
  createBy?: string
  /**
   * 客户
   */
  customer?: string
  /**
   * 预计送达日期（Estimated Delivery Date），显示格式为MM-DD
   */
  currentEdd?: string
  /**
   * 事件发生时间
   */
  eventTime?: string
  /**
   * FBA_ID
   */
  fbaId?: string
  /**
   * 详细地址信息（英文）
   */
  location?: string
  /**
   * 地点类型: 1-始发地 2-集货仓 3-起运港 4-目的港 5-中转仓 6-目的地
   */
  locationType?: number
  /**
   * 事件备注信息
   */
  note?: string
  /**
   * 发布ID
   */
  publishId?: number
  /**
   * 轨迹事件原因码
   */
  reasonCode?: string
  /**
   * ShipTrack同步状态 1.不同步 2.同步成功 3.同步失败)
   */
  shipTrackStatus?: number
  /**
   * 轨迹事件状态码
   */
  statusCode?: string
  /**
   * 中文描述
   */
  templateCn?: string
  /**
   * 英文描述
   */
  templateEn?: string
  /**
   * 客户可见: 0-否 1-是
   */
  visibleFlag?: number
  /**
   * 运单号
   */
  waybillNo?: string
}

/** columnDefs 配置项 */
export type TCol<T extends keyof AllPublishPathODTO = keyof AllPublishPathODTO> = ColDef<
  AllPublishPathODTO,
  AllPublishPathODTO[T]
> & {
  field: T
}

/** cellRendererParams */
export type TCellParams<T extends keyof AllPublishPathODTO = keyof AllPublishPathODTO> = ICellRendererParams<
  AllPublishPathODTO,
  AllPublishPathODTO[T]
>
